Data processing systems have long used "locking" as a means for insuring data integrity. At its most fundamental level, locking a resource is a technique used by a process to prevent its use by another process until the locking process is finished with it--this locking technique being termed "exclusive" locking. In large Data Processing (DP) systems, where data sharing and parallel transaction processing is the rule, it becomes increasingly important to insure that this locking does not result in unnecessary delay of transactions (e.g., because a critical resource in performing the locking becomes unavailable, or because the locking is not at a sufficiently low level of granularity, or because the locking protocol does not recognize requests that may proceed in parallel--e.g., simultaneous READ requests).
To deal with these and other problems in loosely coupled systems environments, a number of design approaches have developed: one approach, which employs IMS Resource Lock Managers (IRLM's) in each system of a loosely coupled environment, provides local hash tables to record information about hold and wait locks for local applications, and selective wait lock information for other applications; message protocols communicate lock information with other systems when necessary. Details of this approach may be found in U.S. Pat. No. 4,399,504, "Method and Means for the Sharing of Data Resources in a Multiprocessing, Multiprogramming Environment" by Obermarck, et al., issued Aug. 16, 1983; and in U.S. Pat. No. 4,480,304, "Method and Means for the Retention of Locks Across Systems, Subsystem, and Communication Failures in a Multiprocessing, Multiprogramming, Shared Data Environment", by Carr et al., issued Oct. 30, 1984; both are assigned to the assignee of the present invention, and are incorporated herein by reference.
An alternate approach (detailed in U.S. Pat. No. 4,965,719, "Method for Lock Management, Page Coherency, and Asynchronous Writing of Changed Pages to Shared External Store in a Distributed Computer System", by Shoens, et al., issued Oct. 23, 1990, assigned to the assignee of the present invention) shows the use of a single "interest manager" which is a mediator for lock requests, and a focal point for all lock requests.
Both the above approaches have some disadvantages, such as the need for frequent messages concerning locks among processors, and the potential loss of status information in the event of a failure of an individual IRLM or interest manager.
A different approach, called distributed global locking, is described in IBM Technical Disclosure Bulletin, Volume 31, No. 1, June 1988, p. 206, "Distributed Locking Facility for Multi-system Data Sharing". Here global locking information is maintained on a distributed basis, though, again, inter-system messaging is relied on to maintain the information, and a priority scheme is used to resolve locking contention.
Building upon these developments of the prior art, it is an object of the present invention to minimize the overhead of global locking; that is, to reduce to a minimum the additional instructions needed to be executed to satisfy global locking protocols.
It is a further object of the present invention to limit the time that a transaction is delayed because of locking protocols--the transaction synchronous delay (TSD).
It is still a further object of the present invention to promote shared data availability by permitting (in the case of loss of local data) processing against undamaged data, while, at the same time, allowing recovery operations to proceed on the damaged portions.
It is still a further object of the present invention to provide a flexible mechanism whereby lock managers can implement different locking compatibility matrices, priority queueing schemes, or other locking protocols so as to resolve locking contention in a way which most effectively meets the serialization requirements of their clients.